package com.erp.dao;

import com.erp.bean.ReportForms;
import java.sql.SQLException;
import java.util.List;

/**
 * @author lpy
 * 财务报表数据访问接口
 */
public interface ReportFormDao{

    /**
     * 添加报表数据:订单完成后调用
     * @param reportForm 封装报表数据的实体类对象
     * @return           受影响行数
     * @throws SQLException 数据库执行异常
     */
    public int add(ReportForms reportForm) throws SQLException;

    /**
     * 根据id查询信息
     * @param  fid 报表编号
     * @return 实体类对象
     * @throws SQLException 数据库执行异常
     */
    public ReportForms findById(int fid) throws SQLException;

    /**
     * 查询全部
     * @return 全部数据集合
     * @throws SQLException 数据库执行异常
     */
    public List<ReportForms> findAll() throws SQLException;

    /**
     * 分页查询全部数据
     * @param currentPage 当前页
     * @param pageSize	  每页显示数据
     * @throws SQLException 数据库执行异常
     * @return 结果集合
     */
    public List<ReportForms> findAllSpilt(Integer currentPage,Integer pageSize) throws SQLException;

    /**
     * 模糊分页查询全部数据
     * @param currentPage 当前页
     * @param pageSize	  每页显示数据
     * @param column	  模糊查询列
     * @param keyWord	  模糊查询关键字
     * @return 结果集合
     * @throws SQLException 数据库执行异常
     */
    public List<ReportForms> findAllSpilt(Integer currentPage,Integer pageSize,String column,String keyWord) throws SQLException;

    /**
     * 进行数据表总数据量统计
     * @return count(*)函数的返回结果
     * @throws SQLException 数据库执行异常
     */
    public Long getAllCount() throws SQLException;

    /**
     * 进行数据表的模糊查询数据量统计
     * @param colunm      指定模糊查询的数据列
     * @param keyWord     模糊查询关键字
     * @return count(colunm)函数的返回结果
     * @throws SQLException 数据库执行异常
     */
    public Long getAllCount(String colunm,String keyWord) throws SQLException;
}
